<!DOCTYPE html>
<html lang="zh-cn">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="../../assets/font/iconfont.css">
    <style>
        :root {
            /* 全局变量定义 */
            --w: 16px;
        }

        .box {
            width: 500px;
            box-shadow: 0 0 12px #ccc;
            border-radius: 8px;
        }

        .box .city,
        .box .btns {
            padding: var(--w);
            box-sizing: border-box;
        }

        .box .city {
            border-bottom: 2px solid #ccc;
            display: flex;
            justify-content: space-between;
            line-height: 26px;
        }

        .box .city>span:first-child {
            font-size: 20px;
        }

        .box .city>span:first-child i {
            font-style: normal;
            font-size: 16px;
            color: orangered;
        }

        .box .city>span.iconfont {
            font-size: 24px;
        }

        .box .btns {
            margin: 0px;
            list-style: none;
            display: flex;
            flex-flow: row wrap;
            /* justify-content: space-between; */

            /* --w:16px; */
        }

        .box .btns>li {
            /* css3 的变量定义和调用 */
            /* 选择器内部定义的变量，只能在当前选择器和当前选择器的子选择器中进行使用 */
            /* --w:16px; */
            /* margin-bottom: var(--w); */
            margin-right: var(--w);
            text-align: center;
            background-color: #dedede;
            padding: 6px 12px;
            box-sizing: border-box;
            border-radius: 10px;
            /* css3 为样式增加的计算功能 calc ,该功能的计算可以完成单位的换算 */
            width: calc((100% - var(--w) * 2) / 3);
            /* width: 30%; */
            cursor: pointer;
            user-select: none;
        }
        .box .btns>li.active{
            background-color: orangered;
            color: white;
        }

        /* 修正底部间距较大 */
        .box .btns>li:nth-child(n+4) {
            margin-top: var(--w);
        }

        .box .btns>li:nth-child(3n) {
            margin-right: 0px;
        }
    </style>
</head>

<body>
    <div id="app">
        <!-- 
            1.以页面为驱动：获取数据，根据页面需要构成页面，渲染页面
            2.以数据为驱动：获取数据，根据变量需求完成数据的赋值
        -->
        <div class="box">
            <div class="city">
                <span>区域 : <i>{{ city }}</i></span>
                <span class="iconfont icon-down"></span>
            </div>
            <ul class="btns">
                <li :class="{ active:city=='江浙沪' }" @click=" city='江浙沪' ">江浙沪</li>
                <li :class="{ active:city=='珠三角' }" @click=" this.city='珠三角' ">珠三角</li>
                <li :class="{ active:city=='北京' }" @click="setCity('北京')">北京</li>
                <li :class="{ active:city=='上海' }" @click=" city='上海' ">上海</li>
                <li :class="{ active:city=='南京' }" @click=" city='南京' ">南京</li>
            </ul>
        </div>

    </div>
    <script type="module">
        import { createApp } from "../../assets/vue3/vue.esm-browser.js";
        createApp({
            data() {
                return {
                    city: "请选择"
                }
            },
            methods: {
                setCity(nc) {
                    this.city = nc
                }
            }
        }).mount("#app");
    </script>
</body>

</html>